/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sisgraf.controler;
import java.util.ArrayList;
import sisgraf.dao.ServicoItemOrcamentoDaoImp;
import sisgraf.model.ServicoItemOrcamento;
import java.util.List;
import java.util.Set;
import javax.swing.table.TableModel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;

/**
 *
 * @author Jordan de Carvalho Guerra
 */
public class ServicoItemOrcamentoControler extends Controler {
    private ServicoItemOrcamentoDaoImp daoLock = new ServicoItemOrcamentoDaoImp();
    public TableModel getListarServicoItemOrcamento(String par) {
        List<ServicoItemOrcamento> lista = null;
        if (par != null)
            lista = new ServicoItemOrcamentoDaoImp().list(par);
        else
            lista = new ServicoItemOrcamentoDaoImp().list("s.id = 0");
        return getModelo(lista);
    }


    public TableModel getSetListarServicoItemOrcamento(Set<ServicoItemOrcamento> setLista) {
//        List<ServicoItemOrcamento> lista = null;
//        lista = (List) setLista;
        List<ServicoItemOrcamento> lista = new ArrayList(setLista);
        return getModelo(lista);
    }
     /*
     */
    private TableModel getModelo(List<ServicoItemOrcamento> lista){
        String[] cabecalho = new String[]  {"It.","Material","Tipo","Und.","Qtd.","Aplicações", "Porcentagem","Valor","Total"};
        TableModel modelo = new ServicoItemOrcamentoTabela(lista, cabecalho);
        return modelo;
    }
    public void ajustarTabela(JTable tabela){
        DefaultTableCellRenderer e = new DefaultTableCellRenderer();
        DefaultTableCellRenderer c = new DefaultTableCellRenderer();
        DefaultTableCellRenderer d = new DefaultTableCellRenderer();
        e.setHorizontalAlignment(SwingConstants.LEFT);
        c.setHorizontalAlignment(SwingConstants.CENTER);
        d.setHorizontalAlignment(SwingConstants.RIGHT);
        int[] tamCol = new int[] {3,30,25,10,9,9,15,15,15};
        DefaultTableCellRenderer[] aliCol = new DefaultTableCellRenderer[]
            {d,e,e,e,d,d,d,d,d};
        super.ajustarTabela(tabela, tamCol, aliCol);
    }
    public ServicoItemOrcamento prepararAlterarServicoItemOrcamento(int id){
        return daoLock.getLockServicoItemOrcamento(id);
    }
    public boolean excluirServicoItemOrcamento(ServicoItemOrcamento material) {
        ServicoItemOrcamentoDaoImp dao = new ServicoItemOrcamentoDaoImp();
        return dao.remove(material);
    }
    public boolean adicionarServicoItemOrcamento(ServicoItemOrcamento material){
        ServicoItemOrcamentoDaoImp dao = new ServicoItemOrcamentoDaoImp();
        return dao.save(material);
    }

    public boolean alterarServicoItemOrcamento(ServicoItemOrcamento material){
        if (!daoLock.settLockServicoItemOrcamento(material)){
            return false;
        } else {
            return true;
        }
    }
    public boolean liberarServicoItemOrcamento(){
        if (!daoLock.unLockServicoItemOrcamento()){
            return false;
        } else {
            return true;
        }
    }

}
